pub mod models;
pub mod utils;
pub mod routers;
// pub mod pg{

// }
// use utils::pg;
// #[cfg(test)]
// pub mod test{
//     use crate::models::*;
//
//
//     #[tokio::test]
//     #[ignore]
//     async fn user_demo() {
//         async fn create_user() {
//             let nickname = "maxwell".to_string();
//             let email = "maxwell@163.com".to_string();
//             let phone_number = "17323122712".to_string();
//             let password = "1234567890".to_string();
//             let friends:Vec<i32> = vec![];
//             let status = "great".to_string();
//             let res = User::insert(nickname,email,phone_number,password,friends,status).await;
//
//             let res = res.unwrap();
//             println!("{:#?}",res);
//         }
//
//         async fn update_user() {
//             let nickname = "maxwell123".to_string();
//             let email = "maxwell123@xpose.com".to_string();
//             let phone_number = "17323122713".to_string();
//             let password = "1234567890haha".to_string();
//             let friends:Vec<i32> = vec![];
//             let status = "cool".to_string();
//             let res = User::update_all_by_id(3, nickname, email, phone_number, password, friends, status).await;
//             let res = res.unwrap();
//             println!("{:#?}",res);
//         }
//
//         async fn read_user1() {
//             let res = User::fetch_one_by_email("maxwell123@xpose.com".to_string()).await;
//             let res = res.unwrap();
//             println!("{:#?}",res);
//         }
//
//         async fn read_user2() {
//             let res = User::fetch_all().await;
//             let res = res.unwrap();
//             println!("{:#?}",res);
//         }
//
//         async fn delete_user() {
//             let res = User::delete_by_id(3).await;
//             let res = res.unwrap();
//             println!("{:#?}",res);
//         }
//
//         create_user().await
//     }
//
//
//     #[tokio::test]
//     #[ignore]
//     async fn guide_demo() {
//
//         async fn create() {
//             let res = Guide::insert(1,"type".to_string(),"content".to_string(),"image".to_string(),vec![],"ok".to_string())
//             .await.unwrap();
//
//             println!("{}",res);
//         }
//
//         async fn update() {
//             let res = Guide::update_all_by_id(1, "guide_type".to_string(),"content2".to_string(),"image2".to_string(),vec![1],"cool".to_string())
//             .await.unwrap();
//
//             println!("{}",res);
//         }
//
//         async fn read1() {
//             let res1 = Guide::fetch_all().await.unwrap();
//             println!("{:#?}",res1);
//         }
//
//         async fn read2() {
//             let res1 = Guide::fetch_one_by_id(1).await.unwrap();
//             println!("{:#?}",res1);
//         }
//
//         async fn read3() {
//             let res1 = Guide::fetch_all_by_author_id(1).await.unwrap();
//             println!("{:#?}",res1);
//         }
//
//         async fn read4() {
//             let res1 = Guide::fetch_all_by_guide_type("type".to_string()).await.unwrap();
//             println!("{:#?}",res1);
//         }
//
//         //测试获取评论
//         async fn read5() {
//             let res1 = Guide::fetch_comments_of(1).await.unwrap();
//             println!("{:#?}",res1);
//         }
//
//         read4().await
//
//
//
//     }
//
//
//
//     #[tokio::test]
//     #[ignore]
//     async fn help_answer_demo() {
//
//         async fn create() {
//             let answer = HelpAnswer::insert(1,1,"content".to_string(),"image".to_string(),"status".to_string()).await;
//             println!("{:?}",answer)
//         }
//
//         async fn read1() {
//             let res = HelpAnswer::fetch_one_by_id(1).await;
//             println!("{:#?}",res)
//         }
//
//         async fn read2() {
//             let res = HelpAnswer::fetch_all_by_help_id(1).await;
//             println!("{:#?}",res)
//         }
//
//         async fn read3() {
//             let res = HelpAnswer::fetch_all_by_author_id(1).await;
//             println!("{:#?}",res)
//         }
//
//         async fn update1() {
//             let res = HelpAnswer::update_all_by_id(1, "content1".to_string(), "image1".to_string(), "status1".to_string()).await;
//             println!("{:?}",res)
//         }
//
//         read3().await
//     }
//
//
//     #[tokio::test]
//     async fn help_demo() {
//         async fn create() {
//             // let res = Help::insert(1, "theme".to_string(), "content".to_string(), "image".to_string(), vec![], "status".to_string()).await;
//             // println!("{:#?}",res);
//
//             for i in 1..10 {
//                 let author_id;
//                 if i % 2 == 0 {
//                     author_id = 2;
//                 }else{
//                     author_id = 1;
//                 }
//                 _ = HelpAnswer::insert(author_id, i, "content".to_string(), "image".to_string(), "status".to_string()).await;
//             }
//
//             for i in 1..10 {
//                 let author_id;
//                 if i % 2 == 0 {
//                     author_id = 2;
//                 }else{
//                     author_id = 1;
//                 }
//                 let theme = format!("theme num{}",i);
//                 let content = format!("content num{}",i);
//                 let image = format!("image{}",i);
//                 let status = "forbid".to_string();
//                 _ = Help::insert(author_id, theme, content, image, vec![1,2,3,4,5], status).await;
//             }
//         }
//
//         async fn read1() {
//             let res = Help::fetch_one_by_id(1).await;
//             println!("{:#?}",res);
//         }
//
//         async fn read2() {
//             let res = Help::fetch_all_by_author_id(1).await;
//             println!("{:#?}",res);
//         }
//         async fn read3() {
//             let res = Help::fetch_all_by_theme("theme".to_string()).await;
//             println!("{:#?}",res);
//         }
//
//         async fn read4() {
//             let res = Help::fetch_all_answers_of(2).await;
//             println!("{:#?}",res);
//         }
//
//         async fn update() {
//             let res = Help::update_all_by_id(1, "themesdf".to_string(), "content12312".to_string(), "imagesdfsdf".to_string(), vec![2,3], "ok".to_string()).await;
//             println!("{:#?}",res);
//         }
//
//         async fn delete() {
//             let res = Help::delete_by_id(1).await;
//             println!("{:#?}",res);
//         }
//         // create().await;
//         read4().await
//     }
//
//
//
// }